﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EStore.Core
{
    public interface IRepository<T, TID, TRepository>
        where T : IAggregateRoot<T, TID, TRepository>
        where TRepository : IRepository<T, TID, TRepository>
    {
        T FindById(TID id);
        IQueryable<T> GetAll();
        void SaveOrUpdate(T entity);
        void DeleteOnSubmit(T entity);
    }
}
